Virtualization is an increasing trend in the field of information technology to enable new topologies for data center automation, cloud-class infrastructure, software-as-a-service, and the like. Virtualization refers to a method of abstracting physical aspects of the physical infrastructure from the particular environments the infrastructure is charged with hosting, e.g., applications, desktops, servers, storage, networks, and other types of computing resources.
One example of virtualization is the abstraction of server-class operating systems from the hardware on which those operating systems run through the use of an intermediate software layer, e.g., a middleware layer. This type of virtualization may be referred to as server virtualization, in which server-class operating systems run as instances of virtual machines. Server virtualization enables server operating systems running as instances of virtual machines (“virtual servers”) to be isolated from the hardware of the physical server (“host machine”).
A host machine may employ a hypervisor to manage the multiple virtual servers operating at the host machine. The hypervisor may create instances of the virtual servers and manage their operation. As an example, the hypervisor may be responsible for memory management and processor scheduling. The hypervisor may also be responsible for creating the virtual machine that has direct access to the hardware of the host machine. A virtual machine having direct access to the physical hardware of the host machine may be referred to as a privileged virtual machine. Virtual machines that do not have direct access to the physical hardware of the host machine may be referred to as unprivileged virtual machines. Unprivileged virtual machines may obtain indirect access to the hardware of the host machine via the privileged virtual machine.
In conventional practice, services available to the unprivileged virtual machines may be aggregated at the privileged virtual machine such that the privileged virtual machine may provide all of the services utilized by the unprivileged virtual machines. As the demand for services increases, however, the privileged virtual machine may become overloaded resulting in diminished performance and a reduced ability to effectively provide those services. Attempts to improve the performance of the privileged virtual machine by adding additional processing or memory resources may be unsuccessful due to diminishing returns. As a result, the scalability of conventional virtualization implementations may be limited. Therefore, a need exists for an approach to server virtualization that addresses the issues identified above.